3D图形
1. 线框渲染(Wireless Rendering)
2. 网格(Mesh)
3. 三角形更常用因为能定义唯一的平面
4. 扫描线渲染(Scanline Rendering)——填充图形的经典算法
5. 遮挡(Occulusion)
6. 深度缓冲(Z Buffering)
GUI是"事件驱动编程",代码可以在任意时间执行以响应事件,而不像传统代码一样自上而下。
图形界面先驱:道格拉斯·恩格尔巴特(Douglas Engelbart)——设想计算机称为未来知识性员工应对问题的工具,并发明了鼠标。
1970年成立 帕洛阿尔托研究中心(Palo Alto Research Center)
1973年完成Xerox Alto(施乐奥托)计算机——创立了桌面,窗口等计算机概念。
1981年的Xerox Star system(施乐之星系统)创建了文档概念。
所见即所得WYSIWYG——施乐打印出来的东西和计算机上一样,并发明了剪切、复制、粘贴等计算机概念。
史蒂夫·乔布斯去施乐参观。
1983年推出 Apple Lisa。
1984年推出 Macintosh 成功。
1985年推出 Windows 1.0,之后出到 3.1。
1995年推出 Windows 95。 提供新的图形界面,并有Mac没有的新功能,如多任务和受保护内存。
1995年微软做失败的 Microsoft Bob——类似于房子的设计。
##本集概括:继续讲计算机发展史
1970年代初成本下降,个人计算机变得可行。
RAM:random-access memory随机访问存储器
ROM:read-only memory只读存储器
Altair8800第一台取得商业成功的个人计算机。
比尔·盖茨和保罗·艾伦写BASIC解释器,解释器和编译器类似,区别是解释器运行时转换,而编译器提前转换。
乔布斯提议卖组装好的计算机,Apple-l诞生。
1977年出现3款开箱即用计算机:
   "Apple-ll"  "TRS-80 Model l"  "Commodore PET 2001"
###IBM意识到个人计算机市场
IBM PC发布,采用**开放架构**,兼容的机器都叫IBM Compatible(IBM兼容)
生态系统生产雪球效应:
因为用户多,软硬件开发人员更愿意花精力在这个平台。
因为软硬件多,用户也更乐意买"IBM兼容"的计算机。
苹果选择**封闭架构**,一切都自己来,只有苹果在非"IBM兼容"下保持了足够市场份额。
##本课概括:政府和消费者推动了计算机的发展。
早期考政府资金,让技术发展到足够商用,然后消费者购买商用产品继续推动产品发展。
冷战导致美国往计算机领域投入了大量资金。
范内瓦·布什预见了计算机的潜力,提出假想机器Memex
帮助建立国家科学基金会,给科学研究提供资金。
1950年代消费者开始买晶体管设备,收音机大卖。
日本取得晶体管授权后,索尼做了晶体管收音机,为日本半导体行业崛起埋下种子。
苏联1961年把宇航员加特林送上太空,导致美国提出登月。
NASA预算大大增加,用集成电路来制作登月计算机。
集成电路的发展实际上是由军事应用大大推进的,阿波罗登月毕竟只有17次。
美国造超级计算机进一步推进集成电路。
美国半导体行业一开始考政府高利润合同活着,忽略消费者市场,1970年代冷战渐消,行业开始衰败。
很多公司倒闭,英特尔转型处理器。
1、PDP-1计算机、键盘和显示器分开,屏幕显示临时值
2、阴极射线管 Cathode Ray Tube(CRT)
3、液晶显示器Liquid Crystal Display(LCD)、像素(Pixel)
4、字符生成器(Character generator)
5、屏幕缓冲区(Screen buffer)
6、矢量命令画图
7、Sketchpad,光笔(Light pen),位图显示和画矩形

1、人机交互(Human-Computer Interaction)发展史

计算机早期同时输入程序和数据(用纸卡/纸带),运行开始直到结束,中间没有人类进行操作。
因为机器太贵了,不能等人类慢慢敲命令和给数据,要同时放入数据和程序。

到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行。
为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机。

到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕称为标配。

2、人机交互工具的变化

  1. 早期输出数据是打印到纸上,而输入是用纸卡/纸带一次性把程序和数据都给进去。
  2. QWERTY打字机的发展
  3. 电传打字机Teletype machine
    作用:用于发电报,使两人可以远距离沟通。

3、命令行界面(Command line interface)

输入命令,计算机会给予回应。

0、压缩的好处

嫩存更多文件,传输也更快。

1、游程编码(Run-Length Encoding)(无损)

适合经常出现相同值的文件,以吃豆人游戏为例:
title
title
title

2、无损压缩(Lossless compression)

没有损失任何数据的压缩。

3、霍夫曼树(Huffman Tree)和字典编码(Dictionary coders)

一种高效的编码模式,以压缩图片为例
title
title
title
title

4、感知编码(Perceptual coding)

删掉人类无法感知的数据的有损压缩方法,叫做"感知编码",如音频文件,人类听不到超声波,所以可以舍去,MP3就是音频的一种圧缩形式。
有损压缩的一个例子就是jpeg模式,如图:
title
title
title

5、时间冗余(Temporal redundancy)

一个视频由很多图片构成,其中很多图片的背景一样,这就造成了时间冗余,很多视频编码格式,只存变化的部分。进阶的视频压缩模式会找到帧与帧的相似性,然后打补丁,MPEG-4是视频压缩的常见标准。

0、为什么要采用文件格式

可以随便存文件数据,但按格式存会很方便。

1、TXT文本文件

用ASCII解码。

2、WAV音频文件

记录的振幅。

3、BMP图片文件

记录每个像素的红禄蓝RGB值。

4、目录文件

用来解决多文件问题,存其他文件的信息,比如开头、结尾、创建时间等。

5、平面文件系统(Flat File System)

文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用。

6、解决文件紧密地排序造成的问题

  1. 把文件划分在一块块
  2. 文件拆分存在多个块里

7、碎片整理

文件的增删改查会不可避免的造成文件散落在各个块里吗,如果是磁带这样的存储介质就会造成问题,所以需要碎片整理——计算机把文件内容调换位置。

8、分层文件系统(Hierarchical File System)

有不同的文件夹,文件夹可以层层嵌套。

内存和存储介质

  1. 纸卡 纸带
    问题:读取慢 修改难 难存临时值
  2. 延迟线存储器
    利用线的延迟在线里存储数据,又叫顺序存储器或者循环存储器。
    利用问题:
    1. 不能随意调出数据
    2. 难以增加内存密度
  3. 磁芯
    利用电磁感应原理
    问题:成本高
  4. 磁带
    问题:访问速度慢
  5. 磁鼓
    与磁带相似
  6. 硬盘
    与磁带相似
  7. 内存层次结构
    在计算机中,高速昂贵和低速便宜的内存混合使用取得一个平衡。
  8. 软盘
    除了磁盘是软的,其他都和硬盘一样,好处是便携。
  9. 光盘
    原理:光盘表面有很多小坑,造成光的不同反射,光学传感器会捕获到,并解码为1和0。
  10. 固态硬盘(SSD)
    里面是集成电路。

1、操作系统(OS)

操作系统也是一种程序,不过它有操作硬件的特殊权限,可以运行和管理其他程序。

2、批处理

一个程序运行后会自动运行下一个程序。

3、外部设备

和计算机连着的其他设备,如打印机。

4、设备驱动程序

为了使所有程序和不同类型的电脑兼容,我们需要操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供程序编程接口(API)来抽象硬件,叫"设备驱动程序"。程序员可以用标准化机制,和输入输出硬件(I/O)交互。

5、多任务处理

操作系统能使多个程序在单个CPU上同时进行的能力,叫做"多任务处理"。

6、虚拟内存

多程序处理带来了一个程序所占用的内存可能不连续的问题,导致程序员难以追踪一个程序,为了解决这个问题,操作系统会把内存地址虚拟化,这叫"虚拟内存"。

7、动态内存分配

虚拟内存的机制使得程序的内存大小可以灵活增减,叫做"动态内存分配",对程序来说,内存看上去是连续的。

8、内存保护

给每个程序分配单独的内存,那当这个程序出现混乱时,它不会影响其他程序的内存,同时也能有效地防止恶意程序篡改其他程序,这叫"内存保护"。

9、多用户分时操作系统(Multics)

用来处理多用户同时使用一台计算机的情况,即每个用户只能用一小部分处理器、内存等。

10、Unix

把操作系统分为两个部分,一个是操作系统的核心部分,如内存管理、多任务和输入/输出处理,这叫做"内核",第二部分是一堆有用的工具,比如程序和运行库。

    Page 1 of 3